package demo9.teht;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.awt.Graphics;
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import javax.swing.JApplet;
import javax.swing.JPanel;

/**
 *
 * @author Pasi
 */
public class T5_Tehtava extends JApplet {

    // merkkijono, johon selvitetään näppäin mitä on painettu
  private String nappain="";
    
    @Override
    public void init() {
      // alustetaan applettiin näppäimistön kuuntelu
      KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
      manager.addKeyEventDispatcher(new MyDispatcher());
      // piirto toteutetaan sisäisellä luokalla
      getContentPane().add(new PiirtoPaneeli());
    }

   public class PiirtoPaneeli extends JPanel {
      @Override 
      public void paintComponent(Graphics g) {
        // piirretään näytölle merkkijono kohtaan 10,10
        g.drawString("Painettu näppäintä : "+nappain,20,20);
      }
   }    
  
   class MyDispatcher implements KeyEventDispatcher {
        @Override
        public boolean dispatchKeyEvent(KeyEvent e) {
            if (e.getID() == KeyEvent.KEY_PRESSED) {
                System.out.println("KEY_PRESSED");
                int nappaimenNumero = e.getKeyCode();
                nappain = KeyEvent.getKeyText(nappaimenNumero);
                repaint();
            } else if (e.getID() == KeyEvent.KEY_RELEASED) {
                System.out.println("KEY_RELEASED");
            } else if (e.getID() == KeyEvent.KEY_TYPED) {
                System.out.println("KEY_TYPED");
            }
            return false;
        }
    }
}
